# shoroo seyl: Q(out) = Q(in)
x = 0.1
k = 2 #hr
#muskingum method
import pandas as pd
zaman = [int(i) for i in range(21)]
Q_in = [5, 8.6, 16.3, 29, 38.8, 41.3, 38.8, 33.3, 25.3,
19.2, 15.2, 12.5, 10.3, 8.9, 7.8, 7, 6.1, 5.4, 5.1, 5, 5]
df = pd.DataFrame({'zaman(hr)' : zaman,
'debi_voroodi(m^3/s)' : Q_in})
df = df.transpose()
df
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| zaman(hr) | 0.0 | 1.0 | 2.0 | 3.0 | 4.0 | 5.0 | 6.0 | 7.0 | 8.0 | 9.0 | ... | 11.0 | 12.0 | 13.0 | 14.0 | 15.0 | 16.0 | 17.0 | 18.0 | 19.0 | 20.0 |
| debi_voroodi(m^3/s) | 5.0 | 8.6 | 16.3 | 29.0 | 38.8 | 41.3 | 38.8 | 33.3 | 25.3 | 19.2 | ... | 12.5 | 10.3 | 8.9 | 7.8 | 7.0 | 6.1 | 5.4 | 5.1 | 5.0 | 5.0 |
delta_t = 1
check = 2 * k * x
check < delta_t
True
c1 = delta_t / (k - (k*x) + (0.5 * delta_t))
c2 = ( (0.5 * delta_t) - (k*x) )/ (k - (k*x) + (0.5 * delta_t) )
print(f"c1 = %f and c2 = %f"%(c1, c2))
c1 = 0.434783 and c2 = 0.130435
delta_i = []
for i in range(len(Q_in)):
j = i+1
try:
delta_i.append(Q_in[j] - Q_in[i])
except:
pass
#----------------------------------------------------------------
c2indelta_i = [c2*i for i in delta_i]
#----------------------------------------------------------------
Q_out = []
o1 = o2 = 5
Q_out.append(o1)
for i in range(len(Q_in)):
try:
I1 = Q_in[i]
I2 = Q_in[i+1]
o2 = o2 + (c1 * (I1 - o2)) + (c2 * (I2 - I1))
Q_out.append(o2)
except:
pass
#----------------------------------------------------------------
I1minesO1 = []
for i in range(1, len(Q_out)):
i1_o1 = Q_in[i] - Q_out[i]
I1minesO1.append(i1_o1)
#----------------------------------------------------------------
c1inI1minesO1 = [c1*i for i in I1minesO1]
#----------------------------------------------------------------
df2 = pd.DataFrame({'I2 - I1': delta_i, "C2(I2 - I1)":c2indelta_i, "I1 - O1": I1minesO1, "C1(I1 - O1)": c1inI1minesO1})
df2
| I2 - I1 | C2(I2 - I1) | I1 - O1 | C1(I1 - O1) | |
|---|---|---|---|---|
| 0 | 3.6 | 0.469565 | 3.130435 | 1.361059 |
| 1 | 7.7 | 1.004348 | 8.465028 | 3.680447 |
| 2 | 12.7 | 1.656522 | 15.828060 | 6.881765 |
| 3 | 9.8 | 1.278261 | 17.468034 | 7.594797 |
| 4 | 2.5 | 0.326087 | 12.047149 | 5.237891 |
| 5 | -2.5 | -0.326087 | 4.635345 | 2.015368 |
| 6 | -5.5 | -0.717391 | -2.162631 | -0.940274 |
| 7 | -8.0 | -1.043478 | -8.178878 | -3.556034 |
| 8 | -6.1 | -0.795652 | -9.927192 | -4.316170 |
| 9 | -4.0 | -0.521739 | -9.089282 | -3.951862 |
| 10 | -2.7 | -0.352174 | -7.485247 | -3.254455 |
| 11 | -2.2 | -0.286957 | -6.143835 | -2.671233 |
| 12 | -1.4 | -0.182609 | -4.689994 | -2.039128 |
| 13 | -1.1 | -0.143478 | -3.607388 | -1.568429 |
| 14 | -0.8 | -0.104348 | -2.734610 | -1.188961 |
| 15 | -0.9 | -0.117391 | -2.328258 | -1.012286 |
| 16 | -0.7 | -0.091304 | -1.924668 | -0.836812 |
| 17 | -0.3 | -0.039130 | -1.348725 | -0.586402 |
| 18 | -0.1 | -0.013043 | -0.849279 | -0.369252 |
| 19 | 0.0 | 0.000000 | -0.480028 | -0.208708 |
df = pd.DataFrame({'zaman(hr)' : zaman,
'debi_voroodi(m^3/s)' : Q_in,
'debi_khorooji(m^3/s' : Q_out})
df = df.transpose()
df
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| zaman(hr) | 0.0 | 1.000000 | 2.000000 | 3.00000 | 4.000000 | 5.000000 | 6.000000 | 7.000000 | 8.000000 | 9.000000 | ... | 11.000000 | 12.000000 | 13.000000 | 14.000000 | 15.00000 | 16.000000 | 17.000000 | 18.000000 | 19.000000 | 20.000000 |
| debi_voroodi(m^3/s) | 5.0 | 8.600000 | 16.300000 | 29.00000 | 38.800000 | 41.300000 | 38.800000 | 33.300000 | 25.300000 | 19.200000 | ... | 12.500000 | 10.300000 | 8.900000 | 7.800000 | 7.00000 | 6.100000 | 5.400000 | 5.100000 | 5.000000 | 5.000000 |
| debi_khorooji(m^3/s | 5.0 | 5.469565 | 7.834972 | 13.17194 | 21.331966 | 29.252851 | 34.164655 | 35.462631 | 33.478878 | 29.127192 | ... | 19.985247 | 16.443835 | 13.589994 | 11.407388 | 9.73461 | 8.428258 | 7.324668 | 6.448725 | 5.849279 | 5.480028 |
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Scatter(x = zaman, y = Q_in, name = 'Q_in'))
fig.add_trace(go.Scatter(x = zaman, y = Q_out, name = 'Q_out'))
fig.update_layout(
title="Hydrograph",
xaxis_title="zaman(s)",
yaxis_title="debi(m^s/s",
legend_title="jaryan",
font=dict(
family="Courier New, monospace",
size=18,
color="RebeccaPurple"
)
)